آموزش مسترکلاس طراحی سیستم (System Design) - آخرین آپدیت

دانلود System Design Masterclass [Video]

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره: این دوره رویکردی ساختاریافته و عملی برای تسلط بر طراحی سیستم با استفاده از مثال‌های واقعی ارائه می‌دهد. شما با یادگیری یک چارچوب اثبات شده برای حل مسائل طراحی سیستم، با تمرکز بر تحلیل نیازمندی‌ها، محدودیت‌ها و شفافیت در طراحی شروع می‌کنید. سیستم‌های پیچیده‌ای مانند فید شبکه‌های اجتماعی، پلتفرم‌های استریم ویدیو، اپلیکیشن‌های پیام‌رسان و موتورهای جستجو به صورت گام به گام تحلیل می‌شوند تا درک بنیادی قدرتمندی ایجاد شود. با پیشروی در دوره، تخمین ظرفیت (Capacity Estimation)، طراحی API و تصمیمات معماری سطح بالا را به صورت عمیق بررسی خواهید کرد. شما یاد می‌گیرید چگونه ترافیک، فضای ذخیره‌سازی، نرخ انتقال داده (Throughput) و پهنای باند را تخمین بزنید و در عین حال اجزای مقیاس‌پذیر مانند دیتابیس‌ها، کش‌ها، Rate Limiterها و سیستم‌های اطلاع‌رسانی را طراحی کنید. تأکید ویژه‌ای بر سبک-سنگین کردن (Trade-offs) معماری در زمینه‌های سازگاری (Consistency)، در دسترس بودن (Availability) و عملکرد صورت گرفته تا دلیل انتخاب‌های طراحی در سیستم‌های واقعی را درک کنید. دوره با ضمائم جامع شامل مفاهیم ضروری طراحی سیستم از جمله شبکه‌سازی، دیتابیس‌ها، استراتژی‌های کشینگ، پروتکل‌های ارتباطی و الگوهای مقیاس‌پذیری به پایان می‌رسد. در نهایت، شما یک قالب تکرارپذیر برای طراحی سیستم خواهید داشت که شما را آماده می‌کند تا با اعتماد به نفس به سوالات مصاحبه‌های طراحی سیستم پاسخ دهید و در ساخت سیستم‌های مقیاس‌پذیر و آماده تولید (Production-ready) مشارکت کنید. طراحی سیستم‌های مقیاس‌پذیر با استفاده از یک چارچوب ساختاریافته تحلیل نیازمندی‌های کاربردی (Functional) و غیرکاربردی (Non-functional) سیستم انجام تخمین دقیق ظرفیت برای سیستم‌های در مقیاس بزرگ طراحی APIها و معماری‌های سطح بالا با اعتماد به نفس انتخاب دیتابیس‌ها و استراتژی‌های کشینگ مناسب به‌کارگیری مفاهیم طراحی سیستم در مصاحبه‌ها و پروژه‌های واقعی این دوره برای مهندسان نرم‌افزار، توسعه‌دهندگان بک‌اند، مهندسان فول‌استک و متخصصان فنی که برای مصاحبه‌های طراحی سیستم آماده می‌شوند، طراحی شده است. همچنین برای مهندسانی که روی سیستم‌های بک‌اند مقیاس‌پذیر کار می‌کنند مناسب است. داشتن دانش پایه در برنامه‌نویسی و مفاهیم بک‌اند توصیه می‌شود. مطالعات موردی طراحی سیستم‌های واقعی در چندین اپلیکیشن مقیاس‌بزرگ * چارچوب ساختاریافته برای حل مسائل مصاحبه طراحی سیستم * پوشش عمیق مفاهیم مقیاس‌پذیری، دیتابیس‌ها، کشینگ و شبکه‌سازی

سرفصل ها و درس ها

مقدمه Introduction

  • معرفی دوره Course Introduction

  • ساختار این دوره چگونه است؟ How this course is structured?

  • چارچوب مصاحبه‌های طراحی سیستم Framework for System Design Interviews

طراحی فید خبری اینستاگرام Design Instagram Newsfeed

  • تعیین نیازمندی‌ها: نیازمندی‌های کاربردی (Functional) Deciding Requirements - Functional Requirements

  • تعیین نیازمندی‌ها: نیازمندی‌های غیرکاربردی (Non-Functional) Deciding Requirements - Non-Functional Requirements

  • تخمین ظرفیت: مقدمه Capacity Estimation - Introduction

  • تخمین ظرفیت: چرا باید تخمین ظرفیت انجام دهیم؟ Capacity Estimation - Why should you do capacity estimation?

  • تخمین ظرفیت: کاربران فعال روزانه و ماهانه (DAU/MAU) Capacity Estimation - DAU/MAU

  • تخمین ظرفیت: نرخ انتقال داده (Throughput) Capacity Estimation - Throughput

  • تخمین ظرفیت: فضای ذخیره‌سازی Capacity Estimation - Storage

  • تخمین ظرفیت: حافظه (Memory) Capacity Estimation - Memory

  • تخمین ظرفیت: پهنای باند شبکه Capacity Estimation - Network Bandwidth

  • طراحی API: ایجاد پست متنی API Design - Create a Text Post

  • طراحی API: ایجاد پست تصویری/ویدیویی API Design - Create an Image / Video Post

  • طراحی API: لایک و کامنت روی پست API Design - Like / Comment on a Post

  • طراحی API: دنبال کردن/لغو دنبال کردن کاربر API Design - Follow / Unfollow another User

  • طراحی API: خواندن فید خبری (تایم‌لاین) API Design - Read the NewsFeed (aka Timeline)

  • طراحی سطح بالا: دنبال کردن/لغو دنبال کردن کاربر High Level Design - Follow / Unfollow another User

  • طراحی سطح بالا: ایجاد پست متنی High Level Design - Create a Text Post

  • طراحی سطح بالا: ایجاد پست متنی (ادامه) High Level Design - Create a Text Post (Continued)

  • طراحی سطح بالا: ایجاد پست تصویری/ویدیویی High Level Design - Create an Image / Video Post

  • طراحی سطح بالا: خواندن فید خبری (تایم‌لاین) High Level Design - Read the NewsFeed (aka Timeline)

  • طراحی سطح بالا: کامنت گذاشتن روی پست High Level Design - Comment on a Post

  • طراحی سطح بالا: لایک کردن پست High Level Design - Like on a Post

  • بررسی عمیق: انتخاب دیتابیس Deep Dive Insights - Database Selection

  • بررسی عمیق: مدل‌سازی داده‌ها Deep Dive Insights - Data Modeling

  • بررسی عمیق: URLهای پیش‌امضا شده (Pre-Signed URLs) Deep Dive Insights - Pre-Signed URLs

  • بررسی عمیق: پردازش رسانه Deep Dive Insights - Media Processing

طراحی یوتیوب و نتفلیکس Design Youtube / Netflix

  • تعیین نیازمندی‌ها: نیازمندی‌های کاربردی Deciding Requirements - Functional Requirements

  • تعیین نیازمندی‌ها: نیازمندی‌های غیرکاربردی Deciding Requirements - Non-Functional Requirements

  • تخمین ظرفیت: DAU / MAU Capacity Estimation - DAU / MAU

  • تخمین ظرفیت: نرخ انتقال داده (Throughput) Capacity Estimation - Throughput

  • تخمین ظرفیت: فضای ذخیره‌سازی Capacity Estimation - Storage

  • تخمین ظرفیت: حافظه Capacity Estimation - Memory

  • تخمین ظرفیت: پهنای باند شبکه Capacity Estimation - Network Bandwidth

  • طراحی API: آپلود محتوا API Design - Upload Content

  • طراحی API: استریم محتوا API Design - Stream Content

  • طراحی سطح بالا: آپلود محتوا High Level Design - Upload Content

  • طراحی سطح بالا: آپلود محتوا (ادامه) High Level Design - Upload Content (Continued)

  • طراحی سطح بالا: موتور گردش کار پردازش محتوا High Level Design - Content Processor Workflow Engine

  • طراحی سطح بالا: استریم محتوا High Level Design - Stream Content

  • بررسی عمیق: انتخاب دیتابیس Deep Dive Insights - Database Selection

  • بررسی عمیق: مدل‌سازی داده‌ها Deep Dive Insights - Data Modeling

  • بررسی عمیق: کدگذاری HLS Deep Dive Insights - HLS Encoding

طراحی سرویس کوتاه‌کننده لینک (TinyURL) Design TinyURL

  • مقدمه: سرویس Tiny URL چیست؟ Introduction - What is a Tiny URL Service?

  • مقدمه: چرا به سرویس Tiny URL نیاز داریم؟ Introduction - Why do we need a Tiny URL Service?

  • تعیین نیازمندی‌ها: نیازمندی‌های کاربردی Deciding Requirements - Functional Requirements

  • تعیین نیازمندی‌ها: نیازمندی‌های غیرکاربردی Deciding Requirements - Non Functional Requirements

  • تخمین ظرفیت: DAU/MAU Capacity Estimation - DAU/MAU

  • تخمین ظرفیت: نرخ انتقال داده (Throughput) Capacity Estimation - Throughput

  • تخمین ظرفیت: فضای ذخیره‌سازی Capacity Estimation - Storage

  • تخمین ظرفیت: حافظه Capacity Estimation - Memory

  • تخمین ظرفیت: پهنای باند شبکه Capacity Estimation - Network Bandwidth

  • طراحی API: تولید یک URL کوتاه API Design - Generate a Short URL

  • طراحی API: دریافت URL اصلی API Design - Get Long URL back

  • طراحی سطح بالا: تولید URL کوتاه High Level Design - Generate Short URL

  • طراحی سطح بالا: مشکل تداخل (Collisions) High Level Design - Problem: Collisions

  • طراحی سطح بالا: روش اول: تولید رشته تصادفی High Level Design - Approach 1: Random String Generation

  • طراحی سطح بالا: روش دوم: تولید رشته تصادفی با استفاده از LongURL High Level Design - Approach 2: Random String Generation using LongURL

  • طراحی سطح بالا: روش سوم: بررسی تداخل در دیتابیس High Level Design - Approach 3: Check DB for Collisions

  • طراحی سطح بالا: روش چهارم: استفاده از شمارنده‌ها (Counters) High Level Design - Approach 4: Lets Keep Counters

  • طراحی سطح بالا: روش چهارم (ادامه): Zookeeper High Level Design - Approach 4 (Continued): Zookeeper

  • طراحی سطح بالا: روش چهارم (ادامه): کدگذاری Base 62 High Level Design - Approach 4 (Continued): Base 62 Encoding

  • طراحی سطح بالا: روش چهارم (ادامه): دیاگرام طراحی نهایی High Level Design - Approach 4 (Continued): Final Design Diagram

  • طراحی سطح بالا: دریافت URL اصلی High Level Design - Get Long URL

  • بررسی عمیق: انتخاب دیتابیس Deep Dive Insights - Database Selection

  • بررسی عمیق: مدل‌سازی داده‌ها Deep Dive Insights - Data Modeling

  • بررسی عمیق: تغییر مسیر از URL کوتاه Deep Dive Insights - Redirection from Short URL

طراحی محدودکننده نرخ (Rate Limiter) Design Rate Limiter

  • مقدمه: استعاره و مثال Introduction - Analogy

  • مقدمه: Rate Limiter چیست؟ Introduction - What is a Rate Limiter?

  • مقدمه: چرا به Rate Limiter نیاز داریم؟ Introduction - Why do we need a Rate Limiter?

  • تعیین نیازمندی‌ها: نیازمندی‌های کاربردی Deciding Requirements - Functional Requirements

  • تعیین نیازمندی‌ها: نیازمندی‌های غیرکاربردی Deciding Requirements - Non-Functional Requirements

  • تخمین ظرفیت: DAU / MAU Capacity Estimation - DAU / MAU

  • تخمین ظرفیت: نرخ انتقال داده (Throughput) Capacity Estimation - Throughput

  • تخمین ظرفیت: فضای ذخیره‌سازی و حافظه Capacity Estimation - Storage & Memory

  • تخمین ظرفیت: پهنای باند شبکه Capacity Estimation - Network Bandwidth

  • طراحی سطح بالا: محل قرارگیری Rate Limiter High Level Design - Placement of Rate Limiter

  • طراحی سطح بالا: جریان طراحی سطح بالای پایه High Level Design - Basic High Level Design Flow

  • طراحی سطح بالا: ذخیره‌سازی شمارنده‌های درخواست High Level Design - Storing Request Counters

  • طراحی سطح بالا: ذخیره‌سازی قوانین Rate Limiter High Level Design - Storing Rate Limiter Rules

  • بررسی عمیق: الگوریتم‌های محدودیت نرخ Deep Dive Insights - Rate limiting Algorithms

  • بررسی عمیق: الگوریتم Token Bucket Deep Dive Insights - Token Bucket Algorithm

  • بررسی عمیق: الگوریتم Leaky Bucket Deep Dive Insights - Leaky Bucket Algorithm

  • بررسی عمیق: الگوریتم Fixed Window Counter Deep Dive Insights - Fixed Window Counter Algorithm

  • بررسی عمیق: الگوریتم Sliding Window Log Deep Dive Insights - Sliding Window Log Algorithm

  • بررسی عمیق: الگوریتم Sliding Window Counter Deep Dive Insights - Sliding Window Counter Algorithm

  • بررسی عمیق: مدیریت Race Condition Deep Dive Insights - Handling Race Condition

طراحی واتس‌اپ Design Whatsapp

  • تعیین نیازمندی‌ها: نیازمندی‌های کاربردی Deciding Requirements - Functional Requirements

  • تعیین نیازمندی‌ها: نیازمندی‌های غیرکاربردی Deciding Requirements - Non-Functional Requirements

  • تخمین ظرفیت: DAU / MAU Capacity Estimation - DAU / MAU

  • تخمین ظرفیت: نرخ انتقال داده (Throughput) Capacity Estimation - Throughput

  • تخمین ظرفیت: فضای ذخیره‌سازی Capacity Estimation - Storage

  • تخمین ظرفیت: حافظه Capacity Estimation - Memory

  • تخمین ظرفیت: پهنای باند شبکه Capacity Estimation - Network Bandwidth

  • طراحی API: پیام‌رسانی یک‌به‌یک API Design - 1:1 Messaging

  • طراحی API: وضعیت پیام API Design - Message Status

  • طراحی API: وضعیت آنلاین API Design - Online Status

  • طراحی API: پیام‌های گروهی API Design - Group Messages

  • طراحی سطح بالا: اتصال Websocket چگونه برقرار می‌شود؟ High Level Design - How is Websocket Connection established?

  • طراحی سطح بالا: پیام‌رسانی یک‌به‌یک High Level Design - 1:1 Messaging

  • طراحی سطح بالا: پیام‌رسانی یک‌به‌یک برای کلاینت آفلاین High Level Design - 1:1 Messaging - Offline Client

  • طراحی سطح بالا: طراحی نهایی پیام‌رسانی یک‌به‌یک High Level Design - 1:1 Messaging - Final Design

  • طراحی سطح بالا: پیام‌رسانی یک‌به‌یک (تصویر، ویدیو، سند) High Level Design - 1:1 Messaging (Image, Video, Document)

  • طراحی سطح بالا: وضعیت پیام High Level Design - Message Status

  • طراحی سطح بالا: وضعیت آنلاین High Level Design - Online Status

  • طراحی سطح بالا: پیام‌های گروهی High Level Design - Group Messages

  • بررسی عمیق: انتخاب دیتابیس Deep Dive Insights - Database Selection

  • بررسی عمیق: مدل‌سازی داده‌ها Deep Dive Insights - Data Modeling

  • بررسی عمیق: رمزنگاری End-to-End Deep Dive Insights - End to End Encryption

طراحی سیستم‌های جستجو Design Search Systems

  • تعیین نیازمندی‌ها: نیازمندی‌های کاربردی Deciding Requirements - Functional Requirements

  • تعیین نیازمندی‌ها: نیازمندی‌های غیرکاربردی Deciding Requirements - Non-Functional Requirements

  • تخمین ظرفیت: DAU / MAU Capacity Estimation - DAU / MAU

  • تخمین ظرفیت: نرخ انتقال داده (Throughput) Capacity Estimation - Throughput

  • تخمین ظرفیت: فضای ذخیره‌سازی Capacity Estimation - Storage

  • تخمین ظرفیت: حافظه Capacity Estimation - Memory

  • تخمین ظرفیت: پهنای باند شبکه Capacity Estimation - Network Bandwidth

  • طراحی API: جستجو API Design - Search

  • طراحی سطح بالا: جستجو (مدل غیربهینه) High Level Design - Search (Suboptimal)

  • طراحی سطح بالا: جستجو (ایندکس‌گذاری) High Level Design - Search (Indexing)

  • طراحی سطح بالا: چگونه جستجوی تقریبی (Fuzzy Search) را پشتیبانی کنیم؟ High Level Design - How to Support Fuzzy Search?

  • طراحی سطح بالا: جستجو (رتبه‌بندی) High Level Design - Search (Ranking)

  • طراحی سطح بالا: جستجو (طراحی نهایی) High Level Design - Search (Final Design)

  • بررسی عمیق: انتخاب دیتابیس Deep Dive Insights - Database Selection

  • بررسی عمیق: مدل‌سازی داده‌ها Deep Dive Insights - Data Modeling

  • بررسی عمیق: سرویس اصلاح کوئری Deep Dive Insights - Query Correction Service

  • بررسی عمیق: Elastic Search Deep Dive Insights - Elastic Search

طراحی Airbnb Design Airbnb

  • تعیین نیازمندی‌ها: نیازمندی‌های کاربردی Deciding Requirements - Functional Requirements

  • تعیین نیازمندی‌ها: نیازمندی‌های غیرکاربردی Deciding Requirements - Non-Functional Requirements

  • تخمین ظرفیت: DAU / MAU Capacity Estimation - DAU / MAU

  • تخمین ظرفیت: نرخ انتقال داده (Throughput) Capacity Estimation - Throughput

  • تخمین ظرفیت: فضای ذخیره‌سازی Capacity Estimation - Storage

  • تخمین ظرفیت: حافظه Capacity Estimation - Memory

  • تخمین ظرفیت: پهنای باند شبکه Capacity Estimation - Network Bandwidth

  • طراحی API: افزودن ملک (صاحب ملک) API Design - Add Property (Property Owner)

  • طراحی API: مشاهده رزروها (صاحب ملک) API Design - View Bookings (Property Owner)

  • طراحی API: جستجوی املاک (مهمان) API Design: Search Properties (Guest)

  • طراحی API: مشاهده ملک (مهمان) API Design - View Property (Guest)

  • طراحی API: رزرو ملک (مهمان) API Design - Book Property (Guest)

  • طراحی سطح بالا: افزودن/به‌روزرسانی ملک (صاحب ملک) High Level Design - Add / Update Property (Property Owner)

  • طراحی سطح بالا: جستجوی املاک (مهمان) High Level Design - Search Properties (Guest)

  • طراحی سطح بالا: مشاهده ملک (مهمان) High Level Design - View Property (Guest)

  • طراحی سطح بالا: رزرو ملک High level Design - Book Property

  • طراحی سطح بالا: مشاهده رزروها High Level Design - View Bookings

  • بررسی عمیق: انتخاب دیتابیس Deep Dive Insights - Database Selection

  • بررسی عمیق: مدل‌سازی داده‌ها Deep Dive Insights - Data Modeling

  • بررسی عمیق: مدیریت رزروهای همزمان (Concurrent Bookings) Deep Dive Insights - Handling Concurrent Bookings

طراحی سیستم اطلاع‌رسانی (Notification System) Design Notification System

  • مقدمه: سیستم اطلاع‌رسانی چیست؟ Introduction - What is a Notification System?

  • مقدمه: چرا به سیستم اطلاع‌رسانی نیاز داریم؟ Introduction - Why do we need a Notification System?

  • تعیین نیازمندی‌ها: نیازمندی‌های کاربردی Deciding Requirements - Functional Requirements

  • تعیین نیازمندی‌ها: نیازمندی‌های غیرکاربردی Deciding Requirements - Non-Functional Requirements

  • تخمین ظرفیت: DAU / MAU Capacity Estimation - DAU / MAU

  • تخمین ظرفیت: نرخ انتقال داده (Throughput) Capacity Estimation - Throughput

  • تخمین ظرفیت: فضای ذخیره‌سازی Capacity Estimation - Storage

  • تخمین ظرفیت: حافظه Capacity Estimation - Memory

  • تخمین ظرفیت: شبکه/پهنای باند Capacity Estimation - Network/Bandwidth

  • طراحی API: ارسال اطلاع‌رسانی API Design - Send Notification

  • طراحی سطح بالا: جریان سطح بالای پایه High Level Design - Basic High Level Flow

  • طراحی سطح بالا: مشکلات طراحی سطح بالای پایه High Level Design - Problems with Basic High Level Design

  • طراحی سطح بالا: اعتبارسنجی و اولویت‌بندی High Level Design - Validation and Prioritization

  • طراحی سطح بالا: محدود کردن نرخ اطلاع‌رسانی‌ها High Level Design - Rate Limiting Notifications

  • طراحی سطح بالا: تطبیق با ترجیحات کاربر High Level Design-Adjusting to User Preferences

  • طراحی سطح بالا: مدیریت انواع مختلف اطلاع‌رسانی‌ها High Level Design- Handling different types of Notifications

  • طراحی سطح بالا: سازماندهی مجدد سرویس‌ها High Level Design Reorganizing services

  • طراحی سطح بالا: جداسازی (Decoupling) High Level Design- Decoupling

  • بررسی عمیق: انتخاب دیتابیس Deep Dive Insights: Database Selection

  • بررسی عمیق: مدل‌سازی دیتابیس Deep Dive Insights-Database Modeling

طراحی لاگینگ توزیع شده Design Distributed logging

  • مقدمه Introduction

  • تعیین نیازمندی‌ها: نیازمندی‌های کاربردی Deciding Requirements - Functional Requirements

  • تعیین نیازمندی‌ها: نیازمندی‌های غیرکاربردی Deciding Requirements - Non Functional Requirements

  • طراحی سطح بالا: درخواست کلاینت و Correlation ID High Level Design -Client Request and Correlation ID

  • طراحی سطح بالا: جمع‌آوری لاگ‌ها در هر سرویس High Level Design -Collecting Logs on each Service

  • طراحی سطح بالا: استفاده از Kafka برای بافرینگ High Level Design - Kafka for buffering

  • طراحی سطح بالا: پردازش با Flink High Level Design - Processing with Flink

  • طراحی سطح بالا: بک‌اندهای ذخیره‌سازی High Level Design - Storage Backends

  • طراحی سطح بالا: کوئری‌ها و داشبوردها High Level Design - Query and Dashboards

  • بررسی عمیق: سریال‌سازی Protobuf و Aro Deep Dive Insights- Protobuf and Aro Serialization

  • بررسی عمیق: Flink Deep Dive Insights- Flink

پیوست: قالب نهایی طراحی سیستم Appendix - The Ultimate System Design Template

  • کلاینت و سرور Client & Server

  • دیتابیس Database

  • مقیاس‌پذیری عمودی در مقابل افقی Vertical vs Horizontal Scaling

  • لود بالانسر (Load Balancer) Load Balancer

  • شاردینگ دیتابیس (Database Sharding) Database Sharding

  • تکثیر دیتابیس (Database Replication) Database Replication

  • کش (Cache) Cache

  • شبکه توزیع محتوا (CDN) Content Delivery Network (CDN)

  • مونولیت و میکروسرویس Monolith & Microservice

  • صف پیام (Message Queue) Message Queue

  • API Gateway API Gateway

پیوست: اصطلاحات اهداف طراحی Appendix - Design Goals Buzzwords

  • مقدمه Introduction

  • مقیاس‌پذیری (Scalability) Scalability

  • در دسترس بودن (Availability) Availability

  • سازگاری (Consistency): Strong / Eventual Consistency - Strong / Eventual

  • تحمل خطا / نبود تک‌نقطه شکست (No SPOF) Fault Tolerance / No SPOF

پیوست: اصطلاحات شبکه‌سازی Appendix - Networking Buzzwords

  • آدرس IP IP Address

  • DNS: سرویس نام دامنه DNS - Domain Name Service

  • کلاینت و سرور Client & Server

  • پروتکل‌ها: مقدمه Protocols - Introduction

  • پروتکل‌ها: TCP Protocols - TCP

  • پروتکل‌ها: UDP Protocols - UDP

  • پروتکل‌ها: HTTP Protocols - HTTP

  • پروتکل‌ها: Websocket Protocols - Websocket

  • فوروارد پروکسی و ریورس پروکسی Forward Proxy & Reverse Proxy

پیوست: اصطلاحات ارتباطی Appendix - Communication Buzzwords

  • مقدمه Introduction

  • GraphQL GraphQL

  • gRPC gRPC

  • صف‌های پیام Message Queues

  • Rest API Rest API

پیوست: اصطلاحات دیتابیس و ذخیره‌سازی Appendix - Database & Storage Buzzwords

  • مقدمه Introduction

  • دیتابیس‌های رابطه‌ای / SQL Relational Database / SQL Database

  • دیتابیس‌های غیررابطه‌ای / NoSQL Non-Relational Database / NoSQL

  • مقایسه SQL در مقابل NoSQL SQL vs NoSQL

  • ذخیره‌سازی شیء (Object Storage) Object Storage

  • کش (Cache) Cache

  • شبکه توزیع محتوا (CDN) CDN - Content Delivery Network

پیوست: بررسی عمیق کشینگ Appendix - Caching Deep Dives

  • استراتژی‌های کشینگ هنگام خواندن (Read Caching) Read Caching Strategies

  • استراتژی‌های کشینگ هنگام نوشتن (Write Caching) Write Caching Strategies

  • مزایا و معایب استراتژی‌های Read Cache Read Cache Strategies - Pros and Cons

  • مزایا و معایب استراتژی‌های Write Cache Write Cache Strategies - Pros and Cons

پیوست: اصطلاحات تکمیلی Appendix - Extra Buzzwords

  • رایانش ابری (Cloud Computing) Cloud Computing

  • لاگینگ و مانیتورینگ Logging & Monitoring

سوالات متداول رایج Common FAQs

  • ایندکس‌گذاری دیتابیس Database Indexing

  • چرا باید تخمین ظرفیت انجام دهیم؟ Why should you do capacity estimation?

  • استریم رویداد با Apache Kafka Apache Kafka Event Streaming

  • راهنمای مبتدیان برای GraphQL Beginners guide to Graph QL

  • هشینگ سازگار (Consistent Hashing) Consistent Hashing

نمایش نظرات

آموزش مسترکلاس طراحی سیستم (System Design)
جزییات دوره
10h 57m
226
Packtpub Packtpub
(آخرین آپدیت)
از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Sweet Codey, Rohit Jain Sweet Codey, Rohit Jain

Sweet Codey تیمی از مدرسان مشتاق است که معتقدند درک عمیق و توانایی توضیح شفاف مفاهیم، برای تبدیل شدن به مدرسانی عالی ضروری است. آن‌ها در کمک به دانشجویان برای تجربه لحظات «یافتم!» (Aha moment) و ساده‌سازی مسائل پیچیده از طریق مشاهده و منطق عامه تخصص دارند. فلسفه آن‌ها این است: «بیشتر کد بزنید تا مدرس بهتری شوید و بیشتر تدریس کنید تا کدنویس بهتری شوید.» روهیت جین (Rohit Jain) یک مهندس نرم‌افزار با تجربه (SDE-2) در آمازون بوستون است که بیش از ۵ سال تخصص در طراحی و ساخت سیستم‌های مقیاس‌بزرگ دارد. او که در لینکدین به عنوان یکی از چهره‌های برتر طراحی سیستم شناخته شده است، در زمینه‌های الگوریتم، ساختار داده و طراحی سیستم (System Design) تخصص دارد و صدها مصاحبه در آمازون برگزار کرده است.

Suresh Gandhi Suresh Gandhi

سورش گاندی (Suresh Gandhi) متخصصی با تجربه با ۴ سال سابقه فعالیت در شرکت‌های پیشرو تکنولوژی مانند مایکروسافت و آمازون است که در زمینه‌های کدنویسی، طراحی سیستم و معماری ابری تخصص دارد. او با موفقیت پروژه‌های توزیع‌شده مقیاس‌بزرگی را رهبری کرده که باعث بهبود چشمگیر عملکرد و مقیاس‌پذیری سیستم‌ها شده است. سورش عاشق ساده‌سازی مفاهیم پیچیده و تدریس است. او در خارج از دنیای تکنولوژی، یک گیتاریست حرفه‌ای در سبک‌های بلوز، راک و موسیقی کلاسیک هند است و مربی تایید شده مدیتیشن Heartfulness است که خلاقیت و ذهن‌آگاهی را با هر کاری که انجام می‌دهد ترکیب می‌کند.

Shubham Chandak Shubham Chandak

شوبهام چاندک یک مهندس نرم‌افزار مشتاق با تجربه گسترده در طراحی سیستم‌های مقیاس‌پذیر است. او در حال حاضر در بلومبرگ (Bloomberg) فعالیت می‌کند و در سیستم‌هایی مشارکت دارد که روزانه میلیاردها کوئری را پردازش می‌کنند. شوبهام همچنین به استارت‌آپ‌ها در ساخت پلتفرم‌های کارآمد، با تخصص در طراحی سیستم، مقیاس‌پذیری و سرویس‌های ابری (AWS, Azure, GCP) کمک کرده است. او به عنوان یک مدرس عملی، متعهد به به اشتراک گذاشتن دانش خود در زمینه طراحی سیستم و الگوریتم‌ها است. او در خارج از محیط کار از طبیعت و موسیقی لذت می‌برد و تعهدی مادام‌العمر به یادگیری و آموزش دارد.